﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SIMCObjetoNegocio;
using SIMCFachadaNegocio;

namespace SIMCPresenter
{
    public interface IDetallePortafolioView : ISeguridadDetallePortafolioView
    {
        event EventHandler<SearchEventArgs<int>> Iniciar;

        Portafolio ViewData { set; }
        List<PortafolioDeUsuario> ListaUsuarios { set; }
        DateTime fechaPortafolios { get; }
    }

    public interface ISeguridadDetallePortafolioView : ISeguridadView
    {
        bool PuedeVerAsociaciones { set; }
    }

    public class DetallePortafolioPresenter : PresenterBase
    {
        private IDetallePortafolioView m_View;
        private FachadaPortafolio m_PortafolioFachada;

        public DetallePortafolioPresenter(IDetallePortafolioView view)
            : base(view)
        {
            m_PortafolioFachada = new FachadaPortafolio();
            this.m_View = view;
            this.Initialize();
        }

        private void Initialize()
        {
            this.m_View.Iniciar += new EventHandler<SearchEventArgs<int>>(mView_Iniciar);
        }

        private void mView_Iniciar(object sender, SearchEventArgs<int> e)
        {
            try
            {
                m_View.ListaUsuarios = m_PortafolioFachada.BuscarListaAsociacion(e.Element).ToList();
                m_View.ViewData = m_PortafolioFachada.BuscarPortafolio(e.Element,m_View.fechaPortafolios ,false);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
                m_View.MostrarMensaje(ex.Message, false);
            }
        }
    }
}
